/** @file 
 *  Header file di inizz_config.cc; sono presenti le definizioni delle funzioni utilizzate.
 */
 
/** Inizializza lo sfondo.
 * Da invocare all'inizio e ogni volta che il giocatore muore e si ricomincia il gioco.
 * @param SFONDO   struttura per la descrizione dello sfondo 
 * @param x,y	   coordinate dell'immagine da cui si comincia a disegnare lo sfondo
 * @param sorgX	   da dove inizia a disegnare lo sfondo sul display
 * @param velx	   velocità con cui lo sfondo si muove
 * @param immagine immagine di sfondo
 */
void inizzSfondo(sfondo &SFONDO);

/** Inizializza il giocatore.
 * Da invocare all'inizio e ogni volta che il giocatore muore e si ricomincia il gioco.
 * @param GIOCATORE 	struttura per la descrizione del giocatore
 * @param x,y 			coordinate per la posizione del giocatore
 * @param vely 			velocità di salto del giocatore
 * @param sorgX,sorgY 	da dove iniziare a disegnare il giocatore dallo spritesheet in orizzontale e verticale			
 * @param vite 			vite del giocatore
 * @param salto 		indica se il giocatore sta saltando
 * @param morto 		indica se il giocatore è morto 
 * @param immagine 		spritesheet del personaggio
 * @param esplosione 	immagine dell'esplosione in caso di collisione					   
 */
void inizzGiocatore(giocatore &GIOCATORE, bool gameover);

/** Inizializza i cattivi.
 * Da invocare all'inizio e ogni volta che il giocatore muore e si ricomincia il gioco.
 * @param CATTIVI	 struttura per la descrizione dei cattivi
 * @param immagine[] array di immagini contenente tutte le immagini dei cattivi
 * @param immfinale	 l'ultima immagine che incontra il personaggio
 * @param ncattivi	 numero di cattivi presenti in una partita
 */
void inizzCattivi(cattivi *CATTIVI, const int ncattivi);

/** Inizializza le funzioni di allegro. Se c'è qualche problema, stampa un messaggio di errore.  */
bool inizializza();

/** Configura alcune funzioni di allegro utili per il funzionamento del gioco.
 * @param display 		 display su cui vengono visualizzate tutte le immagini del gioco			
 * @param CodaEventi 	 oggetto che serve a memorizzare tutti gli eventi che sono avvenuti (es. pressione di un tasto della tastiera)
 * @param timer 		 timer del gioco
 * @param giocatoreTimer timer del giocatore
 */
void configura(ALLEGRO_DISPLAY *display, ALLEGRO_EVENT_QUEUE *CodaEventi, ALLEGRO_TIMER *timer, ALLEGRO_TIMER *giocatoreTimer);


